我知道我知道,上一篇文章很。無。聊,為什麼要學那個cin什麼的東西?
因為要做出程式application的第一步,通常需要輸入資料 -> 輸出資料。
我們出國自由行想到處趴趴走除了搭大眾交通(火車公車)以外,還可以租車對不對?
現在租車的時候除了現場租車,相信很多人也都在網路上預訂。通常預定會需要註冊一個帳號(輸入姓名電話租車人資訊到租車公司系統),然後選擇想要的車款(公司的車型資料放在在網站上讓我們可以選擇),接著輸入起租時間日期、還車時間日期(輸入資料),輸入信用卡資料(也是輸入),確認預約,最後收到一封預約單(系統輸出),就能到租車公司櫃台領車快樂出遊了。
有沒有感覺比較有切身關係了?
如果漏掉上一篇的話Day03的直達車請點我。
在開始示範之前,為了方便起見,因為程式碼開始變多了,需要來引薦一下namespace這位大德。
因為關於是什麼要講完有點久我們以後再來慢慢說(我們這篇是隨意解說法xd)所以先簡單記得,用了這個,前輟就不用加std::了。
來看看以下範例,我們想輸出名字到terminal可以這樣用:
std::string name = Irene;
std::cout << name << std::endl; //std::endl是指結束換行的意思。
前面都有std::對不對?
也可以變成縮減成下面這樣:
using namespace std;
string name = Irene;
cout << name << endl;
噢厚厚,前面的std::都不見了,真是懶人福音,因此我們會用以上這樣的規格來做今後範例。
容我引用一下網上已經很詳盡的簡介和cheatsheet
ASCII是基於拉丁字母的一套電腦編碼系統,局限在於只能顯示26個基本拉丁字母、阿拉伯數字和英式標點符號,在這邊我們需要對照的是Dexcimal,Dec
簡單來說就是,為什麼電腦基於二進位的運算01這樣能顯示出字母符號abc$%@&的原理就是這樣,關於這個詳細之後有空會再聊。
cout << int(a);
//會顯示出什麼呢? 97
為什麼?喔這就是C++的規則,你打出int(符號or字母)然後就會輸出對應的Deximal。
相反過來如果要用數字97找出對應的字母呢?
很簡單,用char(數字),為什麼?因為abc是單個字元,%也是。
關於資料分類型態想複習請到Day02 Data Tpye。
cout << char(97);
//你猜對了,顯示出:a
注意是小寫的,大小寫對應的數字不同
好了,那可以請出cin來加入我們了,我們總得要跟電腦有點互動才好玩。請看以下範例:
#include <iostream>
#include <fstream>
#include <string>
using namespace std; //懶人福音在此
int main() {
char c1,c2,c3;
cout << "Type three letter ";
cin >> c1 >> c2 >> c3;
cout << int(c1)<< " " << int(c2)<< " " << int(c3) << endl;
int i1,i2,i3;
cout << "Type three numbers ";
cin >> i1 >>i2 >>i3;
cout << char(i1)<<char(i2)<< char(i3)<<endl;
任意打了(輸入)鍵盤上的三枚”字元“,會輸出對應的ASCII碼。
電腦:Type three letter (輸出)
敲鍵盤的人:abc (輸入)
電腦:97 98 99 (輸出)
下面四行程式碼反之,輸入數字會輸出對應的字或符號。
這就是I/O,input & output。
總結,互動就是這樣開始的。
Reference:CodeBeauty(Youtube), http://dcjtech.info/wp-content/uploads/2015/10/ASCII-Cheatsheet.pdf, Wikipedia